package cn.hznc.constant;

import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hznc.domain.entity.OrderCraftEntity;
import cn.hznc.domain.entity.OrderEntity;
import cn.hznc.vo.CraftParamVo;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.util.StringUtil;
import org.apache.commons.lang.StringUtils;

import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

/**
 * @Author：Administrator
 * @Date：2023/11/29 14:21
 */
public enum FilterOrderEnum implements FilterOrder{

    /**
     * 过滤工单状态为在制（5）
     */
    A{
        @Override
        public List<OrderEntity> filterByCondition(List<OrderEntity> orderEntities) {
            return orderEntities
                    .stream()
                    .filter(orderEntity -> Objects.equals(orderEntity.getAbutmentStatus() ,5))
                    .collect(Collectors.toList());
        }
    },

//    /**
//     * 过滤工单中有工序为在制状态的（5）
//     */
//    B{
//        @Override
//        public List<OrderEntity> filterByCondition(List<OrderEntity> orderEntities) {
//            return orderEntities
//                    .stream()
//                    .filter(orderEntity -> {
//                        QueryWrapper<OrderCraftEntity> orderCraftWrapper = new QueryWrapper<>();
//                        orderCraftWrapper.eq("task_id", orderEntity.getTaskId());
//                        OrderCraftEntity orderCraftEntity = orderCraftMapper.selectOne(orderCraftWrapper);
//                        if (ObjectUtil.isNotNull(orderCraftEntity) && StringUtil.isNotEmpty(orderCraftEntity.getCraftParam()) && !"[]".equals(orderCraftEntity.getCraftParam())) {
//                            List<CraftParamVo> craftParamVos = JSONArray.parseArray(orderCraftEntity.getCraftParam(), CraftParamVo.class);
//                            if(CollectionUtil.isNotEmpty(craftParamVos)){
//                                for (CraftParamVo craftParamVo : craftParamVos) {
//                                    if(StringUtils.isNotBlank(craftParamVo.getPlanTime()) && craftParamVo.getStatus() == 5 && (craftParamVo.getName().contains("五轴铣削加工中心") || craftParamVo.getName().contains("三四轴加工中心"))){
//                                        return true;
//                                    }
//                                }
//                            }
//                        }
//                    })
//                    .collect(Collectors.toList());
//        }
//    }
//
//    /**
//     * 过滤工单状态为在制（5）
//     */
//    A{
//        @Override
//        public List<OrderEntity> filterByCondition(List<OrderEntity> orderEntities) {
//            return orderEntities
//                    .stream()
//                    .filter(orderEntity -> Objects.equals(orderEntity.getAbutmentStatus() ,5))
//                    .collect(Collectors.toList());
//        }
//    }
}
